/**
 * @file    If_di.h
 * @brief   驱动接口-DI输入
 * @author  Liuwei
 * @version 1.0.1
 * @date    2023-04-25
 * 
 * @copyright Copyright (c) 2023 JBD-Energy Storage Technology Co. LTD
 * 
 * @par 修改日志:
 * <table>
 * <tr><th>Date       <th>Version   <th>Author   <th>Description
 * <tr><td>2023-04-25 <td>1.0.1     <td>Liuwei   <td>首次创建
 * </table>
 */

#ifndef __IF_DI_H_
#define __IF_DI_H_

/* file includes -------------------------------------------------------------*/
#include <stdint.h>
/* cplusplus -----------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif

/* macro/define/typedef ------------------------------------------------------*/
typedef enum
{
    DI_IN_ON ,  /* 输入有效 */
    DI_IN_OFF,  /* 输入无效 */
}di_type;

enum
{
    DI_CHG_SIGN  ,  /* !< (00) 充电信号 */
    DI_LOAD_SIGN ,  /* !< (01) 负载限号 */
    DI_ADDR1     ,  /* !< (03) 地址码1 */
    DI_ADDR2     ,  /* !< (04) 地址码2 */
    DI_ADDR3     ,  /* !< (05) 地址码3 */
    DI_ADDR4     ,  /* !< (06) 地址码4 */
    DI_ADDR5     ,  /* !< (07) 地址码5 */
    DI_ADDR6     ,  /* !< (08) 地址码6 */
    DI_RST_SIGN  ,  /* !< (09) 按键信号 */
    DI_ADDR_IN   ,  /* !< (10) 自动寻址输入 */
    DI_SW_SIGN   ,  /* !< (11) 电源信号 */
	
	DI_RESEVER    , /* !< (13) 反接信号 */
    DI_ID_MAX    , 
};

#define PARALLEL_SW_POS    (0x20)
/* variables -----------------------------------------------------------------*/

/*******************************************************************************
 * public API List
 ******************************************************************************/
void If_di_init_all(void);
di_type If_di_read_in(uint8_t di_id); 
uint8_t If_di_read_addr(void);
di_type If_di_read_parallel_sw(void);

#ifdef __cplusplus
}
#endif

#endif  /* #ifndef __IF_DI_H_ */
/********** Copyright (c) 2023 JBD-Energy Storage Technology Co. LTD *********/
